package LeetCode_everyDay;

/**
 *  检查单词是否为句中其他单词的前缀
 *
 *  给你一个字符串 sentence 作为句子并指定检索词为 searchWord ，其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。
 *
 *  思路：可以先分组，然后遍历，如果前缀匹配，就返回当前数组的下标， 但时间复杂度是O(n^2)， 截取字符串是O(1) 操作。
 *       其实用函数 startWith更快速写出来，
 *
 *       实际上感觉这道题更考察位运算
 *
 */
public class LeetCode1455 {
    public int isPrefixOfWord(String sentence, String searchWord) {
        if(searchWord== null ||  searchWord.length()==0){
            return -1;
        }
        int searchLen = searchWord.length();
        String[] sens = sentence.split(" ");
        int res = -1;
        for (int i = 0; i <sens.length; i++) {
            int match = match(sens[i],i,searchWord,searchLen);
            if(match!=-1){
                res = match;
                return res;
            }
        }
        return res;
    }
    private int match(String sen, int i,String searchWord,int searchLen){
        int slen = sen.length();
        if(searchLen>slen){
            return -1;
        }
        String substring = sen.substring(0, searchLen);
        if(searchWord.equals(substring)){
            return i;
        }
        return -1;
    }
}
